package com.deyuanyun.pic.pig.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.deyuanyun.pic.pig.controller.query.QueryListVO;

import com.deyuanyun.pic.pig.controller.vo.PigTaskVO;
import com.deyuanyun.pic.pig.controller.vo.TrackPointVO;
import com.deyuanyun.pic.settings.domain.base.Attachment;
import com.deyuanyun.pic.settings.domain.pipe.PipeSegment;

public interface CleanPipeLineManagerService {
	PigTaskVO selectByPrimaryKey(String taskId);
	/**
	 * 任务管理列表查询
	 * @param taskVo
	 * @return
     */
	List<PigTaskVO> getCleanPipeLineManagerIndex(QueryListVO taskVo);

	/**
	 * 删除未发布清管任务
	 * @param idStr
	 * @return
	 * @throws Exception
     */
	int deleteTaskById(String[] idStr) throws Exception;

	/**
	 * 发布清管任务
	 * @param idStr
	 * @return
	 * @throws Exception
     */
	int publishPigTaskById(String[] idStr) throws Exception;

	/**
	 * 根据起止位置（场站阀室）ID和对应的绝对距离获取对应的mark点和收发球信息
	 * @param map
	 * @return
	 */
	Map<String, Object> queryPig(Map<String, Object> map, QueryListVO taskVo);

	/**
	 * 根据起止位置（场站阀室）ID和对应的绝对距离获取对应的mark点和收发球信息
	 * @param map
     * @return
     */
	Map<String, Object> queryPigAndPoint(Map<String, Object> map, QueryListVO taskVo);

	/**
	 * 保存任务
	 * @param taskVo
	 * @param points
	 * @return
	 * @throws Exception
     */
	int saveTask( PigTaskVO taskVo, String[] points,String attId)
			throws Exception;

	/**
	 * 得到清管工具
	 * @param name
	 * @return
     */
	Map<String, Object> queryCleanTool(String name);

	/**
	 * 修改任务时得到任务信息（包括附件）
	 * @param taskId
	 * @return
	 */
	Map<String, Object> modifyTask(Map<String, Object> map, String taskId);

	/**
	 * 根据任务Id得到清管任务信息
	 * @param taskId
	 * @return
	 */
	PigTaskVO getTask(String taskId);

	/**
	 * 得到复制任务信息
	 * @param taskId
	 * @return
	 * @throws Exception
     */
	Map<String, Object> copyTask(String taskId) throws Exception;

	/**
	 * 保存复制任务
	 * @param taskVo
	 * @return
	 * @throws Exception
     */
	Map<String, Object> copySave(PigTaskVO taskVo)throws Exception;

	/**
	 * 获取任务对应的附件
	 * @param taskId
	 * @return

	List<Attachment> selectAttachmentByTaskId(String taskId);


	 * 保存任务附件
	 * @param sourceName
	 * @param targetName
	 * @param tid
	 * @throws Exception

	void savefile(String sourceName, String targetName, String tid)throws Exception; */

	/**
	 * 根据Id得到跟踪点信息
	 * @param id
	 * @return
	 */
	TrackPointVO queryTrackPointById(String id);

	/**
	 * 根据管道ID得到起点终点都有收发球筒的管段
	 * @param map
	 * @return
     */
	List<Map<String,Object>> querySegmentByLineId(Map<String,Object> map);

}
